package cockpit.desarollo.DAO;

import java.sql.Connection;
import java.sql.SQLException;
import java.util.ArrayList;

import cockpit.comm.DTO.DatosException;
import cockpit.comm.DTO.ProductoDTO;
import cockpit.desarrollo.ConectDB.Conneccion;
import cockpit.desarrollo.ConectDB.Constantes;

public class CommonDAO
{
    
    private static final String nombreTablaPaises= Constantes.nombreTablaPaises;
    private static final String nombreTablaTipoCuenta= Constantes.nombreTablaTipoCuenta;
    private static final String nombreTablaBanco= Constantes.nombreTablaBanco;
    private static final String nombreTablaCiudad= Constantes.nombreTablaCiudad;
    private static final String nombreTablaInfoVendedor =Constantes.nombreTablaInfoVendedor;

    private Connection getConnect() throws SQLException{
        return Conneccion.getConeccion( );
    }

    /**
     * 
     * @param datos Campos que entran en la consulta como IDUSUARIO
     * @param datosCondicionales condicionales escritos algo=algo
     * @param tablas
     * @param ini
     * @param fin
     * @param order
     * @return
     * @throws SQLException
     * @throws DatosException
     */
    private ArrayList<ProductoDTO> getProductosBD(String[] datos, String[] datosCondicionales , String[] tablas, int ini, int fin ,int order) throws SQLException, DatosException
    {       
            
            return Conneccion.getProductosBD( datos, datosCondicionales, tablas, ini, fin, order );
      
    }
    
    /**
     * 
     * @param datos datos para insertar
     * @param tabla tabla
     * @throws DatosException
     * ejemplo 
     *  
        String[] datos={"idusuarios="+idusuarios,
                "idCategoria="+idCategoria,
                "cantidad="+cantidad,
                "costoVendedor="+costoVendedor,
                "costoCockpit="+costoCockpit,
                "nombreProducto="+nombreProducto,
                "descripcionProducto="+descripcionProducto,
                "historiaProducto="+historiaProducto,
                "Productoscol="+productoscol
                
        };        
        String tabla=nombreTablaProductos;
        insertBD(datos, tabla );
     */
    private void insertBD(String [] datos, String tabla ) throws DatosException
    {
       Conneccion.insertBD( datos, tabla );

    }
    /**
     * 
     * @param datos
     * @param datosCondicionales
     * @param tabla
     * @throws DatosException
     * ejemplo 
     *  String[] datos={"nombreProducto='"+nombreProducto+"'"};
        String[] datosCondicionales={"idProductos='"+idProducto+"'"};
        String tabla=nombreTablaProductos;
        updateBD(datos, datosCondicionales , tabla ) ;
     */
    private void updateBD(String[] datos, String[] datosCondicionales , String tabla ) throws DatosException
    {
        Conneccion.updateBD( datos, datosCondicionales, tabla );     
    }

    /**
     * 
     * @param datos
     * @param datosCondicionales
     * @param tabla
     * @throws DatosException
     */
            
    private void eliminarBD(String[] datos, String[] datosCondicionales , String tabla ) throws DatosException
    {
        Conneccion.eliminarBD( datos, tabla );
    }
    
    //---------------
    //METODOS 
    //---------------
    
    
    //---------------
    //Paises
    //---------------
    /**
     * Inserta un pais nuevo 
     * @param nombre
     * @throws DatosException
     */
    public void insertPais(String nombre) throws DatosException{
        String[] datos={
                "nombre="+nombre
        };        
        String tabla=nombreTablaPaises;
        insertBD(datos, tabla );
    }
    
    
    
    //---------------
    //Cuentas
    //---------------
    public void insertBanco( String prmNombreBanco, String prmDescripcion) throws DatosException{
        String[] datos={
                "tipoCuenta="+prmNombreBanco,
                "descripcion="+prmDescripcion
        };        
        String tabla=nombreTablaBanco;
        insertBD(datos, tabla );
    }
    
    public void insertTipoCuenta( int prmTipoCuenta, String prmDescripcion) throws DatosException{
        String[] datos={
                "tipoCuenta="+prmTipoCuenta,
                "descripcion="+prmDescripcion
        };        
        String tabla=nombreTablaTipoCuenta;
        insertBD(datos, tabla );
    }
    
    //---------------
    //Ciudad
    //---------------
    
    public void insertCiudad( int prmIdPais, String prmNombre ) throws DatosException{
        String[] datos={
                "tipoCuenta="+prmIdPais,
                "descripcion="+prmNombre
        };        
        String tabla=nombreTablaTipoCuenta;
        insertBD(datos, tabla );
    }
    
    //---------------
    //Ciudad
    //---------------
    
    public void insertInfoVendedor(int prmIdInfoCuenta,int prmIdTipoId, int prmIdPais, int prmNumeroIdentificacion, String prmRegion, String prmCelular, String prmPaginaWeb, String prmTwitter, String prmFacebook, String prmBiografia) throws DatosException{
        String[] datos={
                "idInfoCuenta="+prmIdInfoCuenta,
                "idTipoId="+prmIdTipoId,
                "idPais="+prmIdPais,
                "numeroIdentificacion="+prmNumeroIdentificacion,
                "region="+prmRegion,
                "celular="+prmCelular,
                "paginaWeb="+prmPaginaWeb,
                "twitter="+prmTwitter,
                "facebook="+prmFacebook,
                "biografia="+prmBiografia
                
                
        };        
        
        String tabla=nombreTablaInfoVendedor;
        insertBD(datos, tabla );
    }
}


